
#pragma once

#include <string>
#include <vector>
#include <windows.h>

namespace quicks {
	class WindowManager {
	public:
		struct WindowDesc {
			std::wstring name;
			HWND handle;
		};


		WindowManager();
		~WindowManager();
		// should be ordered by last visit
		const std::vector<WindowDesc>* GetWindows();
		void SwitchTo(WindowDesc window);
	private:
		static BOOL CALLBACK ProcessWindow(HWND hwnd, LPARAM lParam);
		std::vector<WindowManager::WindowDesc> windows;
		HANDLE mutex;
	};
}